%% 
clc;clear
H_index = [14 35 56 70;1 27 45 54;2 26 61 79;12 38 52 68;
           17 39 44 75;17 43 67 81;0 37 70 86;18 28 67 85;
           1 36 71 87;12 37 57 83;7 25 51 60;11 29 55 73;
           23 41 63 87;9 33 59 77;23 43 58 77;9 35 49 72;
           22 40 62 86;5 31 49 75;0 26 44 55;16 38 45 74;
           6 31 51 80;3 27 60 78;13 39 53 69;2 20 46 68;
           4 30 48 74;19 21 63 64;19 29 66 84;3 21 47 69;
           4 40 53 84;10 28 54 72;8 34 48 73;15 33 47 79;
           14 32 46 78;15 34 57 71;6 24 50 61;22 42 59 76;
           11 25 65 82;13 36 56 82;10 24 64 83;5 41 52 85;
           7 30 50 81;8 32 58 76;16 42 66 80;18 20 62 65];
H_element = [30 24 1 44;51 60 35 13;6 1 45 15;24 1 44 53;
             1 44 53 24;13 18 60 35;44 53 24 1;15 35 46 56;
             44 30 24 1;33 42 14 5;45 15 6 1;24 1 44 30;
             18 15 32 61;45 15 6 1;44 30 24 1;61 47 20 8;
             45 15 6 1;39 36 34 33;53 24 1 44;15 6 1 45;
             34 3 55 9;1 44 30 24;40 32 61 18;15 6 1 45;
             1 45 15 6;34 33 45 36;53 24 1 44;24 1 44 53;
             44 35 31 50;1 44 53 24;30 24 1 44;44 35 61 50;
             6 1 45 15;53 24 1 44;30 24 1 44;1 44 53 24;
             55 9 34 3;15 6 1 45;37 32 52 47;12 25 36 14;
             24 1 44 30;2 50 22 14;15 6 1 45;1 44 53 24];
H_index = H_index+1;
H = zeros(44,88);
for i=1:44
    for j = 1:4
    H(i,H_index(i,j))=H_element(i,j);
    end
end
H = gf(H,6);
H1 = H(1:44,1:44);
H2 = H(1:44,45:88);
H_ba = [H2\H1,eye(44)];
G = [eye(44),(H2\H1)'];      
%% 
m = string([001010 110010 010011 100001 001010 100110 010000 101001 101100 101111 ...
011100 000101 001110 111010 001001 110100 100010 111111 000101 011100 ...
000110 111101 000000 110001 110100 110111 000101 011001 010000 110011 ...
011011 111010 001011 010000 001001 001000 110111 100101 100011 001001 ...
110110 100111 010110 100000]);
m = bin2dec(m);
m = gf(m,6);
c = m*G;
c = dec2bin(c.x,6);
 